https://github.com/jp-zuniga/sistema-contable
Proyecto de curso de la asignatura Lógica y Algoritmos.
https://github.com/jp-zuniga/sistema-contable
accounting cpp finance sales sales-analysis terminal-app terminal-based terminal-colors terminal-ui tui
Last synced: about 1 month ago
JSON representation
Proyecto de curso de la asignatura Lógica y Algoritmos.
- Host: GitHub
- URL: https://github.com/jp-zuniga/sistema-contable
- Owner: jp-zuniga
- License: mit
- Created: 2025-05-23T00:28:28.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-15T04:30:13.000Z (about 1 year ago)
- Last Synced: 2025-07-15T10:14:02.617Z (about 1 year ago)
- Topics: accounting, cpp, finance, sales, sales-analysis, terminal-app, terminal-based, terminal-colors, terminal-ui, tui
- Language: C++
- Homepage:
- Size: 568 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Sistema Contable
Aplicación de terminal para manejar la contabilidad de una empresa pequeña.

> *Este sistema fue entregado como proyecto final para la asignatura Lógica y Algoritmos en junio, 2024.*
---
## Módulos
### 1. Gestión de Clientes:
Los clientes son identificados por un ID, su nombre, su dirección e información de contacto.

### 2. Gestión de Ventas:
Una venta esta compuesta por un ID, la fecha, el nombre del cliente, la cantidad del producto comprado y el monto de la venta. Para poder calcular el monto, se requiere que el usuario haya especificado el precio por unidad previamente; el monto de una venta se calcula automáticamente con este cuando se ingresa la cantidad comprada en una venta. Adicionalmente, se le pregunta al usuario si el cliente ya pagó el monto. Si no se ha pagado, la venta se agrega al registro de pagos pendientes.

### 3. Gestión de Pagos Pendientes:
Los pagos pendientes se registran a la hora de crear una venta que no se ha pagado. Se almacenan con los datos de la venta a la que corresponden: el ID, la fecha, el nombre del cliente y el monto de la venta. En el menú de este módulo, solamente se pueden mostrar y eliminar pagos pendientes. Cuando uno se elimina, el registro de venta al que corresponde se actualiza para reflejar que el cliente ya pagó. Similarmente, cuando una venta se edita para registrar el pago del cliente, se elimina el registro correspondiente de pago pendiente.

### 4. Gestión de Costos Fijos:
Un costo fijo esta compuesto por un ID, el monto del costo y una pequeña descripción.

### 5. Gestión de Costos Variables:
El módulo de costos variables es igual al de costos fijos; la única diferencia es que a la hora de registrar un costo variable, también se le pide al usuario el mes al que corresponde el costo.

### 6. Cálculo de Totales:
El sistema permite calcular los totales de todos los montos que ha registrado el usuario. A la hora de calcular ingresos, se suman los montos de todas las ventas del mes actual. Similarmente, cuando se calculan los costos totales, solamente se suman los costos variables del mes actual.

---
## Compilación
```bash
g++ main.cpp src/calculos.cpp src/clientes.cpp src/costos.cpp src/menus.cpp src/pendientes.cpp src/precio.cpp src/titulos.cpp src/util_funcs.cpp src/ventas.cpp -Iheaders -o main
```
```bash
clang++ main.cpp src/calculos.cpp src/clientes.cpp src/costos.cpp src/menus.cpp src/pendientes.cpp src/precio.cpp src/titulos.cpp src/util_funcs.cpp src/ventas.cpp -Iheaders -o main
```
---
## Estadísticas
| Lenguaje | Archivos | Líneas | Código | Comentarios |
| :------- | :------: | :----: | :----: | :---------: |
| C Header | 11 | 411 | 198 | 71 |
| C++ | 10 | 3815 | 2796 | 201 |
| Markdown | 1 | 79 | 0 | 46 |
| Total | 22 | 4305 | 2994 | 318 |
---
## Créditos
* *[LemonLib](https://github.com/sea2horses/LemonLib):*
* Utilizado como base para `headers/colors.h`. El código de `LemonLib/LemonLibCSB.h`, y su funcionalidad para colorear texto en el terminal fue adaptada y simplificada para este proyecto.
* *[patorjk.com](http://patorjk.com/software/taag/):*
* Utilizado para crear el arte ASCII de los menús.