o
    0i
                     @  sr   d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
 dd	d
ZdddZedkr7e  dS dS )    )annotationsN)datetime)Optional)AroFloClient)TimesheetsServiceTimesheetFiltersreturnargparse.Namespacec                  C  s   t jdd} | jdtddd | jdtdd	 | jd
tdd	 | jdtdd	 | jdtg ddd | jdtdd	 | jdtdd	 |  S )Nz#Listado de timesheets desde AroFlo.)descriptionz--page   u#   Número de página (por defecto 1).)typedefaulthelpz--useridz*Filtrar por userid (AroFlo ID codificado).)r   r   z--taskidzFiltrar por taskid.z--timesheetidzFiltrar por timesheetid.z--type)
ProductivezNon-ProductiveExpensezTipo de timesheet.)r   choicesr   z--from-datez$Fecha inicial workdate (YYYY-MM-DD).z	--to-datez"Fecha final workdate (YYYY-MM-DD).)argparseArgumentParseradd_argumentintstr
parse_args)parser r   J/var/www/html/flask_server/apps/aroflo_connector_app/cli/timesheets_cli.pyr      sR   r   Nonec            
      C  s8  t  } t }t|}d$dd}t| j| j| j| j|| j|| j	d}|j
|| jd}td|d  d	|d
   td|d   td t|d ddD ]K\}}|di }|di }	t|dd|d d|dd d|dd d|	dd d|	dd d|d d |d! d"|d#  qNd S )%NvalueOptional[str]c                 S  s   | sd S t | d S )Nz%Y-%m-%d)r   strptimedate)r   r   r   r   
parse_dateF   s   zmain.<locals>.parse_date)timesheetidtaskiduseridr   workdate_fromworkdate_to)filterspageu	   Página: 
pagenumberz / maxpageresultsu   Resultados en esta página: currentpageresultszP--------------------------------------------------------------------------------
timesheetsr   )startusertask3dz. r!   z	 | User: 
givennames  surnamez	 | Task: 	jobnumbertasknamez	 | Date: workdatez
 | Hours: hoursz	 | Type: r   )r   r   )r   r   r   r   r!   r"   r#   r   	from_dateto_datelist_timesheetsr'   print	enumerateget)
argsclientservicer    r&   resultidxtsr-   r.   r   r   r   main?   sP   
	



rD   __main__)r   r	   )r   r   )
__future__r   r   r   typingr   %apps.aroflo_connector_app.core.clientr   5apps.aroflo_connector_app.features.timesheets.servicer   r   r   rD   __name__r   r   r   r   <module>   s   

.,
