afaraldo / casa-de-las-pinturas

Proyecto de Ingenieria de Software 2 FIUNI
1 stars 1 forks source link

Definir la documentación para el feature Movimientos de Caja #42

Closed bordonwork closed 8 years ago

bordonwork commented 8 years ago

Se requiere definir la documentación necesaria en donde se especifique:

Descripción

En esta sección se deberá describir el feature, su utilidad para el negocio, los actores, las vistas necesarias (y su propósito), entre otro detalles que ayuden a comprender el objeto del feature.

Flujo

Para cada formulario del feature se requerirá especificar:

Nota: con respecto a los flujos y excepciones, éstos deben redactarse desde el punto de vista del formulario, no del proceso del negocio (por lo tanto se excluyen referencias como: el cliente llega y pide un producto).

Dependencias

Se debe especificar las dependencias con otros features, y explicar en qué consisten dichas dependencias.

Gemas necesarias

En esta sección se deberá incluir las gemas que se utilizarán para el feature. Se debe especificar para cada vista del feature que gemas se utilizan, la versión de la gema y para que se utiliza dicha gema.

Prioridad

La prioridad del feature dentro del proyecto en una escala del 1 al 10 (en donde 10 es la prioridad más alta). .

mlored commented 8 years ago

Movimientos de Caja

Descripción

Este feature será utilizado para tener el registro de movimientos de caja, cuyos movimientos pueden ser por varios motivos (pago de servicios, combustible, pago de sueldo, etc). Es de utilidad para el negocio debido a que el usuario puede tener registrado todos los movimientos de caja que se hayan realizado. El actor sería el gerente y/o usuario. Las vistas necesarias serían:

  1. Listar
  2. Crear
  3. Editar

Flujo

Flujo del Formulario

Crear Movimientos de Caja
  1. Se entra en la opción Nuevo Movimiento.
  2. El sistema solicita los datos del movimiento.
  3. El usuario completa el formulario seleccionando el tipo de movimiento (ingreso o egreso) y el motivo de dicho movimiento.
  4. El usuario selecciona los valores a mover e ingresa los montos respectivos.
  5. Si el tipo de movimiento es de egreso, el sistema verifica que los montos ingresados no superen al saldo disponible en caja.
  6. El usuario confirma los datos a guardar.
  7. El sistema guarda el movimiento e informa que se registró el movimiento de caja.
  8. Se incluye al listado de los clientes el nuevo registro.
Excepciones
  1. Si el movimiento va a provocar saldo menor a cero, el sistema advierte al gerente.
    1. El gerente puede cancelar el registro.
    2. El gerente puede modificar los montos del movimiento.

Mensajes

Creación exitosa: "Se ha guardado el movimiento exitosamente" Creación fallida: "Ha ocurrido un problema al tratar de guardar el movimiento. %{errores}" Actualización exitosa: "Se ha actualizado el movimiento exitosamente" Actualización fallida: "Ha ocurrido un problema al tratar de actualizar el movimiento. %{errores}" Eliminación exitosa: "Se ha eliminado el movimiento exitosamente" Eliminación fallida: "Ha ocurrido un problema al tratar de eliminar el movimiento. %{errores}"

Dependencias

  1. ABM Categoría de Gastos
  2. ABM Cotizaciones
  3. ABM Movimientos Genéricos

Gemas Necesarias

  1. Ransack
    • Version: '~> 1.6.4'
    • Utilización: para hacer las búsquedas avanzadas (filtros) mas simples.
  2. Kaminari
    • Version: '~> 1.16.3'
    • Utilización: para hacer las paginaciones de las colecciones mas simples.
  3. Enumerize
    • Version: '~> 0.11.0'
    • Utilización: para utilizar enums en los modelos.
  4. Simple_form
    • Version: '~> 3.2.0'
    • Utilización: para hacer los formularios mas simples.
  5. Paranoia
    • Version: '~> 2.1.0'
    • Utilización: para hacer borrado ocioso de registros automáticamente.
  6. Cocoon
    • Version: '~> 1.2.8'
    • Utilización: para formularios anidados dinámicos del lado del cliente.

Prioridad

6

mlored commented 8 years ago

gemas y mensajes agregados

mlored commented 8 years ago

Movimientos de Caja

Descripción

Este feature será utilizado para tener el registro de movimientos de caja, cuyos movimientos pueden ser por varios motivos (pago de servicios, combustible, pago de sueldo, etc). Es de utilidad para el negocio debido a que el usuario puede tener registrado todos los movimientos de caja que se hayan realizado. El actor sería el gerente y/o usuario. Las vistas necesarias serían:

  1. Listar
  2. Crear
  3. Editar

Flujo

Flujo del Formulario

Crear Movimientos de Caja
  1. Se entra en la opción Nuevo Movimiento.
  2. El sistema solicita los datos del movimiento.
  3. El usuario completa el formulario seleccionando el tipo de movimiento (ingreso o egreso) y el motivo de dicho movimiento.
  4. El usuario selecciona los valores a mover e ingresa los montos respectivos.
  5. Si el tipo de movimiento es de egreso, el sistema verifica que los montos ingresados no superen al saldo disponible en caja.
  6. El usuario confirma los datos a guardar.
  7. El sistema guarda el movimiento e informa que se registró el movimiento de caja.
  8. Se incluye al listado de los clientes el nuevo registro.
Excepciones
  1. Si el movimiento va a provocar saldo menor a cero, el sistema advierte al gerente.
    1. El gerente puede cancelar el registro.
    2. El gerente puede modificar los montos del movimiento.
Mensajes

Creación exitosa: "Se ha guardado el movimiento exitosamente" Creación fallida: "Ha ocurrido un problema al tratar de guardar el movimiento. %{errores}" Actualización exitosa: "Se ha actualizado el movimiento exitosamente" Actualización fallida: "Ha ocurrido un problema al tratar de actualizar el movimiento. %{errores}" Eliminación exitosa: "Se ha eliminado el movimiento exitosamente" Eliminación fallida: "Ha ocurrido un problema al tratar de eliminar el movimiento. %{errores}"

Dependencias

  1. ABM Categoría de Gastos
  2. ABM Cotizaciones
  3. ABM Movimientos Genéricos

Gemas Necesarias

  1. Ransack
    • Version: '~> 1.6.4'
    • Utilización: para hacer las búsquedas avanzadas (filtros) mas simples.
  2. Kaminari
    • Version: '~> 1.16.3'
    • Utilización: para hacer las paginaciones de las colecciones mas simples.
  3. Enumerize
    • Version: '~> 0.11.0'
    • Utilización: para utilizar enums en los modelos.
  4. Simple_form
    • Version: '~> 3.2.0'
    • Utilización: para hacer los formularios mas simples.
  5. Paranoia
    • Version: '~> 2.1.0'
    • Utilización: para hacer borrado ocioso de registros automáticamente.
  6. Cocoon
    • Version: '~> 1.2.8'
    • Utilización: para formularios anidados dinámicos del lado del cliente.

Observación: nótese el operador pesimista(~>) para evitar que se incluyan cambios mayores de las gemas si en algún momento se hace un update. Estos son los que se usan ahora; puede cambiar en el futuro por diferentes razones(fixes, mejoras, nuevos features, etc. en las gemas)

Prioridad

6