-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path2.2.19 GERA BIEN.txt
161 lines (110 loc) · 3.33 KB
/
2.2.19 GERA BIEN.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
2.2.19
Accion FARMA ES
Ambiente
FECHA = reg de
dd:n(2)
ww:n(2)
yy:n(8)
freg
CLAVE = reg de
farmacia:an(10);
medicamento:an(10);
freg
maestro = reg de
clave:CLAVE
Cant_Actual:n(5);
Fecha_Vencimiento:FECHA;
freg
movimientos = reg de
clavem:CLAVE
cod_mov:n(1)
cant_recibida:n(5);
freg
vencidos = reg de
Medicamento:an(10)
Cant_Vencida:n(5)
freg
Variables
MAE_REM,ACT_REM:Archivo de maestro ordenado por clave
MOV_REM:Archivo de movimiento ordenado por clavem
REM_VENC:Archivo de vencidos Ordenado por Medicamento
rMAE,rACT:maestro
rMOV:movimiento
rREM:vencidos
Procedimientos
Procedimiento leerMAE
leer(MAE_REM,rMAE)
SI FDA(MAE_REM) entonces
rMAE.clave:=HV
Fsi
fp
Procedimiento leerMAE
leer(MOV_REM,rMOV)
SI FDA(MOV_REM) entonces
rMOV.clave:=HV
Fsi
fp
Proceso
AbrirE/(MAE_REM)
AbrirE/(MOV_REM)
ABRIRS/(ACT_REM)
ABRIRS/(REM_VENC)
leerMAE
leerMOV
Mientras (rMAE.clave <> HV) o (rMOV.clave <> HV) Hacer
Si rMAE.clave < rMOV.clave entonces // alta de verdad
//simplemente se transfieren los datos del Maestro a la salida y se graban.
rACT:=rMAE // asignar
GRABAR(ACT_REM,rACT) // imprimir en la salida
Leer(rMAE.clave) // avanzar en el del condicional
Sino
Si rMAE.clave = rMOV.clave entonces
Segun rMOV.cod_mov Hacer
=1: // alta
// se considera error y se lista un mensaje indicando el tipo de error;
Esc("Error, no se puede hacer la alta a uno que ya esta dado de alta")
rACT:=rMAE
GRABAR(ACT_MAE,rACT)
=2: // baja
//entonces es un remedio que deja de fabricarse y se transfiere
//el registro el archivo de Remedios vencidos REM_VENC
rREM.Medicamento:=rMAE.medicamento
rREM.Cant_Vencida:=rMAE.Cant_Actual
GRABAR(REM_VENC,rREM)
=3: // modificacion
// se modifica la cantidad actual con la cantidad recibida
rACT.clave:=rMAE
rACT.Cant_Actual:=rMOV.cant_recibida
GRABAR(ACT_REM,rACT)
Fsegun
leerMAE
leerMOV
Sino // sera mayor a rMOV.clave
Segun rMOV.cod_mov Hacer
=1:
/* Se incorpora el remedio a nuestro ACT_REM, considerando que
la cantidad recibida modifica la cantidad actual
y la Fecha_Vencimiento es 30 días posterior a la fecha actual */
rACT.clave.farmacia:=rMOD.clavem.farmacia
rACT.clave.medicamento:=rMOD.clavem.medicamento
rACT.Cant_Actual:=rMOD.cant_recibida
rACT.Fecha_Vencimiento:=fechamas30d(rMAE.Fecha_Vencimiento) //subaccion
GRABAR(ACT_REM,rACT)
=2:
/* pero si el Codmov es 2 se considera error y se deben producir
los correspondientes mensajes de error. */
Esc('ERROR 2 NO SE PUEDE DAR DE BAJA YA QUE NO EXISTE')
=3:
/* pero si el Codmov es 3 se considera error y se deben producir
los correspondientes mensajes de error. */
Esc('ERROR 3 NO SE PUEDE MODIFICAR YA QUE NO EXISTE')
Fsegun
LeerMOV
Fsi
Fsi
Fin Mientras
Cerrar(MAE_REMEDIOS)
Cerrar(REM_VENC)
Cerrar(ACT_REM)
Cerrar(MOD_REM)
Faccion