-
Notifications
You must be signed in to change notification settings - Fork 0
/
gp-cli.py
executable file
·136 lines (106 loc) · 4.7 KB
/
gp-cli.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
import os
import sys
_CURRENT_DIRECTORY = os.path.dirname(os.path.abspath(__file__))
sys.path.append(os.path.normpath(_CURRENT_DIRECTORY))
import click
from scripts.operations import show_information
from scripts.operations import export_books
from scripts.operations import generate_simplified_invoices, export_simplified_invoices
from scripts.operations import generate_report_periods
from scripts.operations import generate_m130
from scripts.operations import add_expenses, add_incomes
@click.group()
def main():
pass
@main.command(name='información')
def show():
show_information()
@main.command(name='crear_facturas')
@click.option('-f', '--fichero', 'file_path', type=str, default='', help='Ruta al fichero CSV de facturas emitidas a leer')
def make_invoices_from_file(file_path):
"""
Crear las facturas emitidas a partir del fichero que se indica. En caso
que no se pase un fichero, lo va a buscar al directory de entradas con el nombre
'facturas_emitidas.csv'.
"""
if file_path == '':
generate_simplified_invoices('facturas_emitidas.csv')
else:
generate_simplified_invoices(os.path.abspath(file_path))
@main.command(name='incorporar_gastos')
@click.option('-f', '--fichero', 'file_path', type=str, default='', help='Ruta al fichero CSV de facturas recibidas a leer')
def add_expenses_to_db(file_path):
"""
Añadir facturas recibidas a la base de datos. En caso que no se pase un
fichero, lo va a buscar al directory de entradas con el nombre 'factura_recibidas.csv'.
"""
if file_path == '':
add_expenses('facturas_recibidas.csv')
else:
add_expenses(os.path.abspath(file_path))
@main.command(name='incorporar_ingresos')
@click.option('-f', '--fichero', 'file_path', type=str, default='', help='Ruta al fichero CSV de facturas emitidas a leer')
def add_incomes_to_db(file_path):
"""
Añadir facturas emitidas a la base de datos. En caso que no se pase un
fichero, lo va a buscar al directory de entradas con el nombre 'factura_emitidas.csv'.
"""
if file_path == '':
add_incomes('facturas_emitidas.csv')
else:
add_incomes(os.path.abspath(file_path))
@main.command(name='crear_informe')
@click.argument('periodo', type=str, default='total')
@click.option('-a', '--acumulado', 'accumulated', type=bool, default=False, help='Incluir periodos anteriores o no')
@click.option('-d', '--directorio', 'directory_path', type=str, default='', help='Ruta al directory de salida')
def make_report_from_db(periodo, accumulated, directory_path):
"""
Crear un informe de un PERIODO determinado a partir de la información en
la base de datos. En caso que no se pase un directorio lo escribe en el directorio de salidas
con el nombre 'informe_periodos.txt'.
"""
if periodo in ['total'] and directory_path == '':
generate_report_periods()
else:
raise NotImplementedError
@main.command(name='preparar_m130')
@click.option('-f', '--fichero', 'file_path', type=str, default='', help='Ruta al fichero yaml con los datos a leer')
@click.option('-d', '--directorio', 'directory_path', type=str, default='', help='Ruta al directory de salida')
def calculate_m130(file_path, directory_path):
"""
Calcular información para rellenar el modelo 130 de AEA. En caso que no se pase un
fichero, lo va a leer del directorio de entradas con el nombre 'modelo_130_datos.yaml'.
Y si no se pasa el directory lo escribe en el directorio de salidas con el nombre
'calculo_modelo_130.txt'.
"""
if file_path == '' and directory_path == '':
generate_m130('modelo_130_datos.yaml')
elif file_path != '' and directory_path == '':
generate_m130(os.path.abspath(file_path))
else:
raise NotImplementedError
@main.command(name='exportar_libros')
@click.option('-d', '--directorio', 'directory_path', type=str, default='', help='Ruta al directory de salida')
def export_books_from_db(directory_path):
"""
Exportar los libros de ingreso y gastos a partir de la información en la
base de datos. En caso que no se pase un directorio lo escribe en el directorio de salidas
con el nombre 'informe_periodos.txt'.
"""
if directory_path == '':
export_books()
else:
raise NotImplementedError
@main.command(name='exportar_facturas')
@click.option('-d', '--directorio', 'directory_path', type=str, default='', help='Ruta al directory de salida')
def export_invoices_from_db(directory_path):
"""
Exportar las facturas emitidas a partir de la información en la base
de datos.
"""
if directory_path == '':
export_simplified_invoices()
else:
raise NotImplementedError
if __name__ == "__main__":
main()