-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path2.2.19gera.txt
195 lines (134 loc) · 5.48 KB
/
2.2.19gera.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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
Actualizacion
Ejercicio 2.2.19
En una Empresa Farmacéutica se posee un archivo MAE_REMEDIOS (ordenado por Clave: Farmacia + Medicamento),
el que se actualiza semanalmente, a traves de la información que se encuentra cargada en un archivo de MOVIMIENTOS
(ordenado por Clavem: Farmacia + Medicamento, y Cod_Mov), de la siguiente forma:
Si Clave (MAE_REMEDIOS) es menor que Clavem (MOVIMIENTOS), simplemente se transfieren los datos del Maestro a la salida y se graban.
Si Clave (MAE_REMEDIOS) es igual a Clavem (MOVIMIENTOS) y el Codmov es 1, se considera error y se lista un mensaje
indicando el tipo de error; pero si el Codmov es 2, entonces es un remedio que deja de fabricarse y se transfiere el
registro al archivo de Remedios vencidos (REM_VENC) ; pero si el Cod_Mov es 3, se modifica la cantidad actual con la cantidad recibida.
Si Clave (MAE_REMEDIOS) es mayor que Clavem (MOVIMIENTOS) y el Codmov es 1, se incorpora el remedio a nuestro Vademecum,
considerando que la cantidad recibida configura la cantidad actual y la Fecha_Vencimiento es 30 días posterior a la fecha actual
pero si el Codmov es 2 o 3 se considera error y se deben producir los correspondientes mensajes de error.
Se considera que solo existe un registro de movimiento para cada registro del maestro.
MAE_REMEDIOS Ordenado por Farmacia y Medicamento
Farmacia/Medicamento/Cant_Actual/Fecha_Vencimiento
MOVIMIENTOS Ordenado por Farmacia, Medicamento y Cod_Mov
Farmacia/Medicamento/Cod_Mov/Cant_Recibida
REM_VENC Ordenado por Medicamento
Medicamento/Cant_Vencida
Accion Farmaceuticas es
Ambiente
fecha = registro de
day:n(2)
week:n(2)
year:n(4)
freg
clavef = registro de
Farmacia:n(10)
Medicamento:n(10)
freg
Farmaceuticas = registro de
clave:clavef
Cant_Actual:n(5)
Fecha_Vencimiento:fecha
freg
Movimientos = registro de
clavem:clavef
Cod_Mov:n(5)
Cant_Recibida:n(5)
freg
vencidos = registro de
Medicamento:an(10)
Cant_Vencida:n(5)
freg
Variables
ar_MAE: archivo de Farmaceuticas Ordenado por clave // maestro
ar_MAE_ACT: archivo de Farmaceuticas Ordenado por clave// salida mae actualizado
ar_MOV: archivo de Movimientos Ordenado por clave//movimiento
ar_VEN: archivo de vencidos Ordenado por Medicamento//remedios vencidos
rMAE:Farmaceuticas
rMOV:Movimientos
rVEN:vencidos
op:logico
Constantes
Funciones
Procedimientos
Procedimiento LeerMAE
leer(ar_MAE,rMAE)
Si FDA(ar_MAE) entonces
rMAE.clave:=HV
Fsi
Fin Procedimiento
Procedimiento LeerMOV
leer(ar_MOV,rMOV)
Si FDA(ar_MOV) entonces
rMOV.clave:=HV
Fsi
Fin Procedimiento
Proceso
AbrirE/(ar_MAE);AbrirE/(ar_MOV);
ABRIRS/(ar_VEN);ABRIRS/(ar_MAE_ACT);
LeerMOV
LeerMAE
Escribir('Desea utilizar el programa s/n')
leer(op)
Mientras op = s hacer
Mientras (ar_MAE<>HV) o (ar_MOV<>HV) hacer
Si Aclave < clavem entonces
ESC(ar_MAE_ACT,rMAE) // grabo en la salida
LeerMAE
Sino clave > clavem entonces
segun Cod_Mov hacer
= 1:
rMAE.Cant_Actual:=rMOV.Cant_Recibida
rMAE.Fecha_Vencimiento:=FECHAACTUAL()+30;
Esc(ar_MAE_ACT,rMAE)
= 2:
esc('ERROR de baja invalido')
= 3:
esc('ERROR modificacion invalida')
Fsegun
LeerMOV
Sino (clave = clavem)
Segun rMAE.Cod_Mov hacer
= 1:
esc('ERROR: COD DE MOVIMIENTO 1.')
esc(ar_MAE_ACT,rMAE)
= 2:
rVEN.Medicamento:=rMAE.Medicamento
rVEN.Cant_Vencida:=rMAE.Cant_Actual
esc(ar_VEN,rVEN)
= 3:
rMAE.Cant_Actual:=rMOV.Cant_Recibida
esc(ar_MAE_ACT,rMAE)
Fsegun
LeerMAE
LeerMOV
Fin SI
Fmientras
esc('desea utilizar nuevamente o cerrar s/n')
leer(op)
Fmientras
Cerrar(ar_VEN)
Cerrar(ar_MOV)
Cerrar(ar_MAE)
Cerrar(ar_MAE_ACT)
Fin accion
En una Empresa Farmacéutica se posee un archivo MAE_REMEDIOS (ordenado por Clave: Farmacia + Medicamento),
el que se actualiza semanalmente, a traves de la información que se encuentra cargada en un archivo de MOVIMIENTOS
(ordenado por Clavem: Farmacia + Medicamento, y Cod_Mov), de la siguiente forma:
Si Clave (MAE_REMEDIOS) es menor que Clavem (MOVIMIENTOS), simplemente se transfieren los datos del Maestro a la salida y se graban.
Si Clave (MAE_REMEDIOS) es igual a Clavem (MOVIMIENTOS) y el Codmov es 1, se considera error y se lista un mensaje
indicando el tipo de error; pero si el Codmov es 2, entonces es un remedio que deja de fabricarse y se transfiere el
registro al archivo de Remedios vencidos (REM_VENC) ; pero si el Cod_Mov es 3, se modifica la cantidad actual con la cantidad recibida.
Si Clave (MAE_REMEDIOS) es mayor que Clavem (MOVIMIENTOS) y el Codmov es 1, se incorpora el remedio a nuestro Vademecum,
considerando que la cantidad recibida configura la cantidad actual y la Fecha_Vencimiento es 30 días posterior a la fecha actual
pero si el Codmov es 2 o 3 se considera error y se deben producir los correspondientes mensajes de error.
Se considera que solo existe un registro de movimiento para cada registro del maestro.
MAE_REMEDIOS Ordenado por Farmacia y Medicamento
Farmacia/Medicamento/Cant_Actual/Fecha_Vencimiento
MOVIMIENTOS Ordenado por Farmacia, Medicamento y Cod_Mov
Farmacia/Medicamento/Cod_Mov/Cant_Recibida
REM_VENC Ordenado por Medicamento
Medicamento/Cant_Vencida