Se agrega soporte para rangos de fechas y últimos días
This commit is contained in:
commit
d6b1125968
|
@ -1,6 +1,12 @@
|
|||
# Lista de cambios
|
||||
|
||||
|
||||
## v 0.3.0 [30-Jul-21]
|
||||
---
|
||||
* Se agrega soporte para consultar por los últimos X días
|
||||
* Se agrega soporte para consultar por rangos de fechas
|
||||
|
||||
|
||||
## v 0.2.1 [16-Jul-21]
|
||||
---
|
||||
* Fix - Issue #1
|
||||
|
|
|
@ -41,13 +41,26 @@ def _process_command_line_arguments():
|
|||
parser.add_argument('-fn', '--fiel-nombre', help=help, default='fiel')
|
||||
|
||||
help = "Descargar por Tipo: t=todos(default), e=emitidas, r=recibidas"
|
||||
parser.add_argument('-t', '--tipo', help=help, dest='type', default='t', choices=['t', 'e', 'r'])
|
||||
parser.add_argument('-t', '--tipo', help=help,
|
||||
dest='type', default='t', choices=['t', 'e', 'r'])
|
||||
help = "Año de la descarga entre 2014 y el año actual (predeterminado)."
|
||||
parser.add_argument('-a', '--año', help=help, dest='year', default=year, type=int, choices=range(2014, year+1))
|
||||
parser.add_argument('-a', '--año', help=help,
|
||||
dest='year', default=year, type=int, choices=range(2014, year+1))
|
||||
help = "Mes de la descarga, el mes actual es el predeterminado"
|
||||
parser.add_argument('-m', '--mes', help=help, dest='month', default=0, type=int, choices=range(13))
|
||||
parser.add_argument('-m', '--mes', help=help,
|
||||
dest='month', default=0, type=int, choices=range(13))
|
||||
help = "Día de la descarga, de forma predeterminada no se usa"
|
||||
parser.add_argument('-d', '--dia', help=help, dest='day', default=0, type=int, choices=range(32))
|
||||
parser.add_argument('-d', '--dia', help=help,
|
||||
dest='day', default=0, type=int, choices=range(32))
|
||||
help = "Intervalo de días a partir de la fecha actual y hacia a atras"
|
||||
parser.add_argument('-ud', '--ultimos-dias', help=help,
|
||||
dest='last_days', default=0, type=int, choices=range(30))
|
||||
help = "Fecha inicial AAAA-MM-DD"
|
||||
parser.add_argument('-fi', '--fecha-inicial', help=help,
|
||||
dest='date_start', default='')
|
||||
help = "Fecha final AAAA-MM-DD"
|
||||
parser.add_argument('-ff', '--fecha-final', help=help,
|
||||
dest='date_end', default='')
|
||||
|
||||
help = 'Solicitar descarga'
|
||||
parser.add_argument('-sd', '--solicitar-descarga', help=help,
|
||||
|
@ -59,9 +72,11 @@ def _process_command_line_arguments():
|
|||
parser.add_argument('-da', '--descargar-archivos', help=help,
|
||||
action='store_true', default=False, required=False)
|
||||
help = 'ID de solicitud'
|
||||
parser.add_argument('-id', '--id-solicitud', dest='id_request', help=help, default='')
|
||||
parser.add_argument('-id', '--id-solicitud', dest='id_request',
|
||||
help=help, default='')
|
||||
help = 'ID archivo'
|
||||
parser.add_argument('-ida', '--id-archivo', dest='id_file', help=help, default='')
|
||||
parser.add_argument('-ida', '--id-archivo', dest='id_file',
|
||||
help=help, default='')
|
||||
help = 'Ruta de descarga de archivos'
|
||||
parser.add_argument('-dd', '--directorio-descargas', dest='path_download',
|
||||
help=help, default='')
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
import getpass
|
||||
import uuid
|
||||
from calendar import monthrange
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timedelta
|
||||
from pathlib import Path
|
||||
from time import sleep
|
||||
|
||||
|
@ -123,6 +123,20 @@ def _get_cert(data):
|
|||
cert = SATCertificate(cer, key, pem)
|
||||
return cert
|
||||
|
||||
def _to_date(str_date, end=False):
|
||||
error = ''
|
||||
dt = None
|
||||
try:
|
||||
parts = str_date.split('-')
|
||||
if end:
|
||||
dt = datetime(parts[0], parts[1], parts[2], 23, 59, 59)
|
||||
else:
|
||||
dt = datetime(parts[0], parts[1], parts[2], 0, 0, 0)
|
||||
except Exception as e:
|
||||
error = 'Fecha inválida'
|
||||
|
||||
return error, dt
|
||||
|
||||
|
||||
def _validate_requests_args(args):
|
||||
result, data = _validate_fiel_args(args)
|
||||
|
@ -134,9 +148,6 @@ def _validate_requests_args(args):
|
|||
log.error(msg)
|
||||
return False, {}
|
||||
|
||||
# ~ cer = data['path_cer'].read_bytes()
|
||||
# ~ key = data['path_enc'].read_bytes()
|
||||
# ~ cert = SATCertificate(cer, key)
|
||||
cert = _get_cert(data)
|
||||
|
||||
if not cert.is_valid_time:
|
||||
|
@ -150,14 +161,37 @@ def _validate_requests_args(args):
|
|||
data['month'] = args.month
|
||||
data['day'] = args.day
|
||||
|
||||
now = today()
|
||||
|
||||
if args.last_days:
|
||||
date_start = now.replace(hour=0, minute=0, second=0, microsecond=0) \
|
||||
- timedelta(days=args.last_days)
|
||||
date_end = now.replace(hour=23, minute=59, second=59, microsecond=0)
|
||||
data['date_start'] = date_start
|
||||
data['date_end'] = date_end
|
||||
return True, data
|
||||
|
||||
if args.date_start and args.date_end:
|
||||
error, date_start = _to_date(args.date_start)
|
||||
if error:
|
||||
log.error(error)
|
||||
return False, {}
|
||||
|
||||
error, date_end = _to_date(args.date_end, True)
|
||||
if error:
|
||||
log.error(error)
|
||||
return False, {}
|
||||
|
||||
data['date_start'] = date_start
|
||||
data['date_end'] = date_end
|
||||
return True, data
|
||||
|
||||
if data['day']:
|
||||
if not validate_date(data['year'], data['month'], data['day']):
|
||||
msg = 'Fecha inválida'
|
||||
log.error(msg)
|
||||
return False, {}
|
||||
|
||||
now = today()
|
||||
|
||||
month1 = month2 = data['month']
|
||||
if month1 == 0:
|
||||
month1 = 1
|
||||
|
|
Loading…
Reference in New Issue