DavixDavix ERPX
Modulos

Cajas Diario

Gestion de cajas diario con apertura, cierre, movimientos de ingreso y egreso, y detalle de metodos de pago.

Que es Cajas Diario

El modulo Cajas Diario permite gestionar el ciclo diario de caja de cada cajero o responsable financiero. Una caja diario representa el periodo operativo en el que un cajero registra todos los movimientos de dinero (ingresos y egresos) durante su turno. El flujo va desde la apertura de la caja (inicio del turno) hasta el cierre (fin del turno), controlando los montos totales y los metodos de pago utilizados.

Ruta de navegacion: Inicio > Finanzas > Cajas diario


Estados de una caja diario

Cada caja diario tiene un ciclo de vida con dos estados posibles:

EstadoColor del badgeDescripcion
APERTURAAzul (bgblue)La caja fue abierta y esta operativa. El cajero puede registrar movimientos de ingreso y egreso durante este periodo.
CIERREVerde (bggreen)La caja fue cerrada. Se registro el monto final y ya no acepta nuevos movimientos.

Una caja en estado APERTURA es una caja activa. Solo puede existir una caja abierta por responsable por dia. Si intenta abrir otra caja para el mismo responsable en la misma fecha, el sistema mostrara el mensaje: "El responsable ya tiene una caja aperturada."


Pantalla principal: listado de cajas diario

Descripcion general

La pantalla principal muestra el titulo "Cajas diario" con la descripcion "Muestra el listado y las herramientas para gestionar las cajas diario".

Barra de herramientas

En la parte superior derecha se encuentran dos botones:

BotonIconoDescripcion
Actualizarpi pi-refreshRecarga la tabla con los datos mas recientes del servidor.
Aperturapi pi-plusAbre el formulario para crear una nueva caja diario (apertura).

Columnas de la tabla principal

La tabla muestra las siguientes columnas:

#ColumnaDescripcionFormato
1RESPONSABLENombre del cajero responsable de la caja. Se muestra como la inicial del nombre + apellido paterno (ej: "JPerez").Texto
2APERTURA FECHAFecha y hora en que se abrio la caja.DD/MM/YYYY hh:mm AM/PM
3MOVIMIENTO INGRESO CANTIDADNumero total de movimientos de tipo INGRESO registrados en esta caja.Numero entero
4MOVIMIENTO INGRESO MONTOSuma total de los montos de todos los movimientos de tipo INGRESO.Numero decimal
5MOVIMIENTO EGRESO CANTIDADNumero total de movimientos de tipo EGRESO registrados en esta caja.Numero entero
6MOVIMIENTO EGRESO MONTOSuma total de los montos de todos los movimientos de tipo EGRESO.Numero decimal
7ESTADOEstado actual de la caja diario (APERTURA o CIERRE) mostrado como badge con color.Badge de color
8ACCIONESIcono de tres puntos horizontales (pi pi-ellipsis-h) que despliega el menu contextual.Icono clickeable

Las columnas de Apertura Monto, Apertura Monto Efectivo, Cierre Fecha, Cierre Monto y Cierre Monto Efectivo existen en el modelo de datos pero estan ocultas (comentadas) en la interfaz de la tabla principal. Los valores se pueden ver al abrir el detalle de cada caja.

Paginacion

La tabla incluye un sistema de paginacion con los siguientes controles:

  • Texto informativo: "Mostrando pagina {X} con {Y} registros de {Z} entradas"
  • Boton Primera pagina (pi pi-angle-double-left): va a la primera pagina
  • Boton Pagina anterior (pi pi-angle-left): retrocede una pagina
  • Selector de pagina: dropdown que muestra "1 de N" y permite saltar a cualquier pagina
  • Boton Pagina siguiente (pi pi-angle-right): avanza una pagina
  • Boton Ultima pagina (pi pi-angle-double-right): va a la ultima pagina

El tamano de pagina por defecto es 50 registros.


El menu contextual aparece al hacer clic derecho sobre una fila o al hacer clic en el icono de tres puntos de la columna ACCIONES. Las opciones disponibles dependen del estado de la caja:

Estado APERTURA (estado = 0)

OpcionIconoDescripcion
Detallespi pi-info-circleRedirige a la pantalla de movimientos de la caja: /comercial/mis-cajas-diario-movimientos/\{id\}
Cierrepi pi-check-circleAbre el formulario de cierre de caja con la seccion CIERRE visible.
------Separador visual
Bajapi pi-trashInicia el proceso de eliminacion de la caja diario.

El menu contextual solo tiene opciones para el estado APERTURA (estado = 0). Las cajas en estado CIERRE no muestran opciones en el menu contextual, ya que la caja cerrada no admite mas acciones.


Filtros de busqueda

La barra de filtros se ubica debajo de la barra de herramientas e incluye:

Busqueda por texto libre

Un campo de texto con icono de lupa (pi pi-search) permite buscar por cualquier texto. La busqueda se aplica como *texto* sobre todos los campos indexados.

Filtros avanzados

Al hacer clic en "Agregar filtro" se abre un panel superpuesto (overlay) con un dropdown que permite seleccionar el tipo de filtro:

#Tipo de filtroValor del dropdownCampos que muestraDescripcion
1Fecha de aperturaFECHA APERTURAApertura Fecha inicio + Apertura Fecha finFiltra cajas cuya fecha de apertura esta dentro del rango indicado. Ambos campos son obligatorios. Formato: selector de fecha (date).
2Fecha de cierreFECHA CIERRECierre Fecha inicio + Cierre Fecha finFiltra cajas cuya fecha de cierre esta dentro del rango indicado. Ambos campos son obligatorios. Formato: selector de fecha (date).
3VendedorVENDEDORResponsable (dropdown con busqueda)Filtra cajas por el responsable/cajero seleccionado. Se puede buscar por nombre. Obligatorio.

Aunque en el codigo existe una opcion de filtro por Estado (opcion 3 en la lista del TS), en la interfaz del dropdown solo se muestran 3 opciones: Fecha Apertura, Fecha Cierre y Vendedor.

Botones de filtros

BotonIconoDescripcion
Agregar filtropi pi-filterAbre el panel overlay para configurar un nuevo filtro.
Quitar filtrospi pi-filter-slashElimina todos los filtros activos y resetea la busqueda.
Buscarpi pi-searchEjecuta la busqueda con los filtros activos.

Chips de filtros activos

Cada filtro agregado se muestra como un chip (etiqueta) encima de los botones. Cada chip muestra:

  • Fecha de apertura: "Fecha de apertura desde DD/MM/YYYY hasta DD/MM/YYYY"
  • Fecha de cierre: "Fecha de cierre desde DD/MM/YYYY hasta DD/MM/YYYY"
  • Responsable: "Responsable == Nombre Completo"

Cada chip tiene un boton X para eliminar ese filtro individual. Al hacer clic sobre el chip se puede editar el filtro existente.


Formulario de apertura de caja

Al hacer clic en el boton "Apertura" de la barra de herramientas, se abre un dialogo a pantalla completa con el titulo "Caja diario".

Seleccionar cajero

El campo Cajero(a) es un dropdown con busqueda que muestra la lista de vendedores/colaboradores configurados. Formato: "Apellido Paterno Apellido Materno Nombres".

  • El campo esta deshabilitado visualmente (clase p-disabled) pero se pre-selecciona automaticamente con el usuario actual si existe en la lista de vendedores
  • Se puede buscar escribiendo en el filtro del dropdown
  • Al escribir, el sistema busca colaboradores en el servidor en tiempo real
  • Mensaje si no hay resultados: "No se encontraron registros."
  • Mensaje si el filtro no encuentra nada: "No se han encontrado resultados"

El campo Cajero(a) es obligatorio. El sistema lo marca con un asterisco rojo (*).

Seccion APERTURA

Esta seccion se muestra cuando el estado es 0 (nueva caja). Contiene un fieldset con el titulo "APERTURA" y los siguientes campos:

CampoTipoObligatorioDescripcion
FechaCalendario con hora (p-calendar)SiSe actualiza automaticamente cada segundo con la fecha/hora actual. Formato: DD/MM/YYYY hh:mm AM/PM. El campo esta deshabilitado (no editable manualmente).
MontoNumero decimal (p-inputNumber)SiMonto total de apertura. Se calcula automaticamente a partir del detalle de movimientos. Formato decimal con hasta 2 digitos. Valor minimo: 0.
Monto efectivoNumero decimal (p-inputNumber)SiMonto en efectivo de apertura. Se calcula automaticamente sumando solo los montos de tipo EFECTIVO del detalle. Formato decimal con hasta 2 digitos. Valor minimo: 0.

Validaciones de la seccion Apertura:

CampoMensaje de errorCondicion
Fecha* ObligatorioSi el campo esta vacio
Monto* ObligatorioSi el campo esta vacio
Monto efectivo* ObligatorioSi el campo esta vacio

Detalle de movimientos (tabla interna)

Dentro de la seccion APERTURA (y tambien en CIERRE) se incluye una tabla de detalle de movimientos. Esta tabla permite agregar multiples lineas de pago que componen el monto total de apertura o cierre.

Columnas de la tabla de detalle

#ColumnaAnchoDescripcion
1TIPO COBRO180pxDropdown para seleccionar el metodo de pago.
2TIPO150pxCampo dinamico que cambia segun el tipo de cobro seleccionado.
3NUMERO REFERENCIAFlexibleCampo de texto enmascarado (hasta 22 digitos). Solo visible si el tipo de cobro NO es Efectivo.
4MONTO RECIBIDO150pxCampo numerico decimal para ingresar el monto de esta linea de pago.
5VALIDAR100pxCheckbox "Validado?" Solo visible si el tipo de cobro NO es Efectivo.
6ACCIONES80pxBoton X (pi pi-times) para eliminar esta linea de detalle.

Tipos de cobro disponibles

#Tipo de cobroValor internoCampo "TIPO" muestra
1EfectivoEFECTIVONo muestra campo adicional (texto: "Seleccione un metodo de pago")
2TarjetaTARJETADropdown con opciones: Debito / Credito
3Deposito en cuentaDEPOSITO EN CUENTADropdown con lista de bancos
4TransferenciaTRANSFERENCIADropdown con lista de bancos
5Monedero electronicoMONEDERO ELECTRONICODropdown con lista de monederos

Lista de bancos disponibles

#Banco
1BANCO DE COMERCIO
2BANCO DE CREDITO DEL PERU
3BANCO INTERAMERICANO DE FINANZAS (BanBif)
4BANCO PICHINCHA
5BBVA
6CITIBANK PERU
7INTERBANK
8MIBANCO
9SCOTIABANCK PERU
10BANCO GNB PERU
11BANCO FALABELLA
12BANCO RIPLEY
13BANCO SANTANDER PERU
14ALFIN BANCO
15BANK OF CHINA
16BCI PERU
17ICBC PERU BANK

Lista de monederos electronicos disponibles

#MonederoValor interno
1YapeYAPE
2PlinPLIN
3IzipayYAIZIPAYYA
4Agora PAYAGORA
5BimBIM

Comportamiento del detalle

  • Al abrir el formulario, se crea automaticamente una linea de detalle con tipo de cobro Efectivo y monto 0
  • Boton "Agregar" (pi pi-plus): agrega una nueva linea de detalle con tipo Efectivo y monto 0
  • Boton X (pi pi-times): elimina la linea de detalle correspondiente
  • Pie de tabla: muestra el texto "Monto total recibido" y el valor total calculado con formato 0.00
  • Si no hay lineas, muestra el mensaje: "No se encontraron datos" con icono de advertencia

Calculo automatico de montos

Cada vez que se modifica un monto, tipo de cobro o se agrega/elimina una linea, el sistema recalcula:

  • Monto total (montoTotal): suma de TODOS los montos recibidos de todas las lineas, sin importar el tipo de cobro
  • Monto total efectivo (montoTotalRecibido): suma solo de los montos cuyo tipo de cobro es EFECTIVO
  • Estos valores se envian automaticamente al formulario principal y actualizan los campos Monto y Monto efectivo de la seccion APERTURA o CIERRE

El campo Numero Referencia usa una mascara de entrada (p-inputMask) que acepta hasta 22 digitos numericos. No se muestra para pagos en efectivo.

Observacion

Un campo de texto de multiples lineas (textarea) con 5 filas de alto. Es obligatorio.

  • Mensaje de error: * Obligatorio
  • Al guardar, el texto se convierte automaticamente a MAYUSCULAS

Guardar apertura

Al hacer clic en "Guardar":

  1. El sistema verifica si el responsable ya tiene una caja abierta en la misma fecha
  2. Si ya existe: muestra error "El responsable ya tiene una caja aperturada."
  3. Si no existe: crea la caja diario y luego guarda cada linea de detalle como movimiento de tipo INGRESO con motivo "APERTURA"
  4. Mensaje de exito: "Registros exitosos."
  5. El dialogo se cierra automaticamente y la tabla se actualiza

Formulario de cierre de caja

Al seleccionar "Cierre" en el menu contextual de una caja en estado APERTURA, se abre el mismo dialogo a pantalla completa pero con la seccion CIERRE visible.

Cajero(a) deshabilitado

El campo Cajero(a) se muestra deshabilitado cuando el estado es CIERRE (estado = 1). Se muestra el cajero que abrio la caja, sin posibilidad de cambiarlo.

Seccion CIERRE

Esta seccion se muestra cuando el estado es 1 (cierre de caja existente). Contiene un fieldset con el titulo "CIERRE" y los siguientes campos:

CampoTipoObligatorioDescripcion
FechaCalendario con hora (p-calendar)SiSe actualiza automaticamente cada segundo con la fecha/hora actual. Formato: DD/MM/YYYY hh:mm AM/PM.
MontoNumero decimal (p-inputNumber)SiMonto total de cierre. Se calcula automaticamente del detalle de movimientos.
Monto efectivoNumero decimal (p-inputNumber)SiMonto en efectivo de cierre. Se calcula automaticamente del detalle de movimientos.

Al abrir el formulario de cierre, el sistema carga los datos de apertura de la caja (fecha, monto, monto efectivo, observaciones) como referencia, pero estos campos NO son editables en el modo cierre.

Detalle de movimientos de cierre

Funciona exactamente igual que en la apertura. La diferencia es:

  • Los movimientos se guardan con tipo EGRESO y motivo "CIERRE"
  • Los montos calculados actualizan los campos Monto y Monto efectivo de la seccion CIERRE

Observacion de cierre

Campo de texto de multiples lineas (textarea) con 5 filas. Es obligatorio. Se convierte a mayusculas al guardar.

Guardar cierre

Al hacer clic en "Guardar":

  1. El sistema actualiza la caja diario existente con los datos de cierre
  2. El estado cambia de APERTURA a CIERRE
  3. Mensaje de exito: "Registro exitoso."
  4. El dialogo se cierra y la tabla se actualiza

Eliminar caja diario (Baja)

Al seleccionar "Baja" en el menu contextual de una caja en estado APERTURA:

  1. Se abre un dialogo de confirmacion con el titulo "Confirmacion"
  2. Se muestra un icono de advertencia (pi pi-exclamation-triangle) con el mensaje: "Estas seguro de proceder con la eliminacion?"
  3. Dos botones:
    • No (pi pi-times): cierra el dialogo sin eliminar
    • Si (pi pi-check): procede con la eliminacion

Al confirmar:

  • El sistema envia una solicitud de eliminacion al servidor
  • Mensaje de exito: "Eliminado."
  • La tabla se recarga automaticamente
  • Si hay error, se muestra un mensaje con el detalle del error

Detalle de movimientos

Al seleccionar "Detalles" en el menu contextual, el sistema redirige a la pagina de movimientos de la caja diario en la ruta:

/comercial/mis-cajas-diario-movimientos/{id}

Donde \{id\} es el identificador unico de la caja diario. Esta vista se documenta por separado en el modulo Cajas Diario Movimientos.


Mensajes del sistema

Mensajes de exito

MensajeContexto
"Registros exitosos."Apertura de caja creada correctamente (con detalles de movimiento).
"Registro exitoso."Cierre de caja actualizado correctamente.
"Eliminado."Caja diario eliminada correctamente.

Mensajes de error

MensajeContexto
"El responsable ya tiene una caja aperturada."Se intento abrir una segunda caja para el mismo responsable en la misma fecha.
"Revise bien, hay formularios por validar."Hay campos obligatorios sin completar (validacion del formulario).
" Obligatorio"*Campo requerido que no fue completado (aparece en rojo debajo del campo).
"No se encontro el servidor de respuestas, consulte con el Administrador. ERROR 404"El servidor no responde (error 404).
"Error interno del servidor. ERROR 500"Error interno del servidor (error 500).
"Error 404 consulte con su admin."Error generico de comunicacion con el servidor.

Datos tecnicos de la caja diario

Estructura de datos de una caja diario

CampoTipoDescripcion
idUUIDIdentificador unico de la caja diario
estadoNumero0 = APERTURA, 1 = CIERRE
responsable_idUUIDID del cajero/colaborador responsable
receptor_idUUIDID del receptor (si aplica)
apertura_fechaFecha/HoraFecha y hora de apertura
apertura_montoDecimalMonto total al momento de la apertura
apertura_monto_efectivoDecimalMonto en efectivo al momento de la apertura
apertura_observacionesTextoObservaciones de la apertura (en mayusculas)
cierre_fechaFecha/HoraFecha y hora del cierre
cierre_montoDecimalMonto total al momento del cierre
cierre_monto_efectivoDecimalMonto en efectivo al momento del cierre
cierre_observacionesTextoObservaciones del cierre (en mayusculas)
movimientosArrayLista de movimientos asociados a esta caja

Estructura de un movimiento de caja

Cada linea de detalle se guarda como un movimiento independiente:

CampoTipoDescripcion
fechaFecha/HoraFecha y hora del movimiento
tipoTextoINGRESO (apertura) o EGRESO (cierre)
motivoTextoAPERTURA o CIERRE
montoDecimalMonto de esta linea de pago
monto_tipoTextoTipo de cobro: EFECTIVO, TARJETA, DEPOSITO EN CUENTA, TRANSFERENCIA, MONEDERO ELECTRONICO
tarjeta_tipoTextoSubtipo: DEBITO/CREDITO (tarjeta), nombre del banco (deposito/transferencia), nombre del monedero
numero_referenciaTextoNumero de referencia de la transaccion (no aplica para efectivo)
verificadoBooleanSi el pago fue validado
banco_nombreTextoNombre del banco (para deposito y transferencia)
monedero_nombreTextoNombre del monedero (para monedero electronico)
caja_idUUIDID de la caja diario a la que pertenece
monto_totalDecimalMonto total de todos los movimientos
monto_total_efectivoDecimalMonto total en efectivo de todos los movimientos
responsable_idUUIDID del responsable

Problemas comunes y soluciones

ProblemaCausa probableSolucion
"El responsable ya tiene una caja aperturada"El cajero ya tiene una caja abierta hoyCierre la caja existente antes de abrir una nueva, o verifique si la caja anterior debe darse de baja.
No aparece el boton "Cierre" en el menuLa caja ya esta en estado CIERRELas cajas cerradas no tienen opciones adicionales. Solo cajas en APERTURA muestran las opciones Detalles, Cierre y Baja.
Los campos Monto y Monto efectivo no se pueden editarSon campos calculadosEstos campos se calculan automaticamente a partir del detalle de movimientos. Modifique los montos en las lineas de detalle.
La fecha se actualiza sola constantementeEs el comportamiento normalLa fecha de apertura/cierre se actualiza automaticamente cada segundo para reflejar la hora exacta del registro.
No puedo cambiar el cajero en el formulario de cierreEl campo esta deshabilitado en modo cierreEl cajero se hereda de la apertura y no puede modificarse al cerrar la caja.
No veo el campo Numero de ReferenciaEl tipo de cobro es EfectivoEl campo Numero de Referencia solo aparece para metodos de pago distintos a Efectivo (Tarjeta, Deposito, Transferencia, Monedero).
El checkbox "Validado?" no apareceEl tipo de cobro es EfectivoLa validacion solo aplica para metodos de pago distintos a Efectivo.
El monto total no coincide con lo esperadoError en las lineas de detalleRevise cada linea del detalle de movimientos. El monto total es la suma de todos los montos recibidos. El monto efectivo solo suma las lineas de tipo EFECTIVO.
Error al guardar la cajaCampos obligatorios vaciosVerifique que todos los campos marcados con * esten completados: Cajero, Fecha, Monto, Monto efectivo y Observacion.

Relacion con otros modulos

Modulo relacionadoRelacion
Cajas Diario MovimientosMuestra el detalle de todos los movimientos (ingresos y egresos) de una caja diario especifica. Se accede desde la opcion "Detalles" del menu contextual.
Mis Cajas DiarioVista personal que permite al cajero ver unicamente sus propias cajas diario.
CobrosLos cobros pueden generar movimientos de ingreso en las cajas diario.
Cobros VentasLos cobros asociados a ventas tambien se reflejan como movimientos en las cajas diario.