Proceso
|
Especificación (Lenguaje estructurado)
|
Existe Usuario (X)
|
Iniciar puntero i=1
Iniciar verificador=falso
Mientras (contador<=Nro. de Usuarios Registrados y verificador=falso)
Si (i-ésimo Usuario Registrado = X)
verificador=verdadero
i incrementa en 1 //i++
retornar verificador
|
Validar Usuario
|
Solicitar Nick y contraseña
Si Nick y contraseña existe en Usuarios Registrados
Retornar true
Sino
Imprimir “Error en Nick o Contraseña, verifique los datos e intente nuevamente”
Retornar falso
|
Ingresar
|
Si Validar Usuario = verdadero
Ir a Menú Principal del Usuario
|
Verificar tipo de Usuario
|
Retornar el tipo de Usuario //Administrador|Cliente|Tienda
|
Actualizar NroVisitas
|
NroEnt incrementa en 1 //NroEnt++
|
Actualizar UltFecha
|
UltFecha = fecha actual
|
Actualizar Perfil
|
Actualizar NroVisitas
Actualizar UltFecha
nueva contraseña=contraseña
nuevo Email=Email
Registrar nuevo Producto
Eliminar Producto
Actualizar Stock
|
(2) SUBSISTEMA DE REGISTRO
Comprueba Disponibilidad
Cuando el invitado quiera registrarse necesita:nom, pat, mat, e-mail, dir, telf..
Para comprobar disponibilidad:
Mientras det_usu ≠˂˃
Caso: nom, pat, mat = dat_usu (nom, pat, mat)
Datos ya registrados
Caso: e-mail = dat_usu (e-mail)
e-mail resgistrado
otro:
datos validos
Validar Información
Para validar información:
Caso: e-mail ≠ format (dir@dominio)
Formato e-mail incorrecto
Caso: nom, pat, mat = números
Formato de nom, pat, mat invalido
Caso: dir ≠ format (nom_calle, #casa)
Formato dir invalido
Caso: telf ≠ números
Formato telf incorrecto
Otro
Formato correcto
Seleccionar categoría
Para seleccionar categoría
Caso: Administrador
Se requiere (cod_adm, id, pasword, permiso Adm_prinsi)
Caso: Tienda
Se requiere (dir_tien, rubro, #prod, des, costos, id, pasword)
Caso: Usuario
Se requiere (id, pasword, #cuenta_bancaria)
Otro:
Registro exitoso
(3) SUBSISTEMA DE PEDIDOS
Confirmación de Producto:
bool confirmaProducto (string codProducto)
{
If(codProducto existe en BD)
Return true
Else
Return false
}
Elaboración de Pedido:
void elaboracionPedido (string codProducto[], int n)
{
For(int i=1;i<=n;i++)
{
Print(“producto
” + i + “:” + codProducto[i]);
}
}
(4) SUBSISTEMA DE INVENTARIOS
4.-INVENTARIO
Si
producto existe en la tabla V:
Solicitud aceptada
F: Solicitud Rechazada
Si información del producto existe V:
Poner nombre del producto
Poner código producto
F: No se hace nada
Si informe es distinto de vacio V: Poner
descripción de producto
Poner tipo de producto
Poner precio producto
F: No realizar informe
Si informe
revisado existe V: Enviar
informe
F: No enviar informe
(5) SUBSISTEMA CONTABLE
Evaluar pedido de información
SI existe solicitud de informe ENTONCES
Leer cod_adm;
MIENTRAS cod_adm no es correcto
Leer cod_adm;
FIN MIENTRAS
Leer ti_inf, fech_sol;
Generar cod_inf;
CASO
CASO: cod_inf = semanal
Buscar información solo de última semana, fech_ini, fech_fin;
CASO: cod_inf = mensual
Buscar información solo de último mes, fech_ini, fech_fin;
CASO: cod_inf = anual
Buscar información solo de último mes, fech_ini, fech_fin;
FIN CASO
FIN SI
Analizar la información de los pedidos
SI existe solicitud de informe ENTONCES
Leer cod_ped;
MIENTRAS cod_ped es incorrecto
Leer cod_ped;
FIN MIENTRAS
Leer cod_us, monto, fech_ped, num_stock, cod_prod;
SI cod_us, monto, fech_ped, num_stock, cod_prod ENTONCES
Guardar datos en balance de contabilidad ;
FIN SI
FIN SI
Extraer información requerida
SI existe solicitud de informe contable Y información de balance ENTONCES
Obtener tipo de informe;
Obtener fech_ini, fech_fin;
MIENTRAS fech_ini es distinto a fech_fin ENTONCES
Obtener informacion de balance;
FIN MIENTRAS
MOSTRAR información de balance;
FIN MIENTRAS
FIN SI
Elaboracion de Informe
tipo=Leer tipo de informecaso1 tipo=rapido
Mostrar cod_nf,Fech_if
(Elementos Sin formato ni graficas)
NroVent
Total vendidos
Fechas
Prodmven
Falt
Caso2 tipo=simple
(Elementos con formato y tablas)
Mostrar cod_nf,Fech_if
NroVentTotal vendidos
Fechas
Prodmven
Falt
Caso3 tipo=Graficas
(Elementos con formato,tablas y graficas)
Mostrar cod_nf,Fech_if
NroVentTotal vendidos
Fechas
Prodmven
Falt
Comprobacion de Informe
Esperar respuesta de descarga o aceptacion del usuario.
if(cod_nf=Pres.cod_nf)
(informe satisfactorio) descargar
else
Informe insatisfactorio
jmp volver a Leer