EP´s

(1) SUBSISTEMA DE IDENTIFICACIÓN


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
       

(6) SUBSISTEMA ESTADISTICO
   Elaboracion de Informe
          tipo=Leer tipo de informe
          caso1 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
                 NroVent
                 Total vendidos
                 Fechas
                 Prodmven
                 Falt
     Caso3 tipo=Graficas
                (Elementos con formato,tablas y graficas)    
                 Mostrar cod_nf,Fech_if
                 NroVent
                 Total 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