M1Sc@sUddlmZmZmZddlmZddlmZddlm Z ddl m Z ddl Tddl TddlZddlmZdd lmZmZmZdd lmZmZddlZdd lmZd Zd ZdZe dddZe dddZe dddZdZ e ddddddZ"e dddddZ#e ddddddZ$e ddddddZ%e ddddddZ&e ddddddZ'e dddZ(e dddZ)e dddZ*dS(i(trendertredirecttrender_to_response(tRequestContext(t HttpResponse(tIntegrityError(tlogin_required(t*N(tObjectDoesNotExist(t authenticatetlogintlogout(tdatetimetdate(tsettingscCsttjjjdd}|j|jj}d}d|j kr\|j d}n|rd}d|j kr|j dr|j d}n2y|dj }||j dbs      c Cs|jj}|rVd|jkr_|jdr_|jd}tjjd|}q_n |j}g}|jst|}n|jddddddd g}x$|D]}||j j |_ qWx\|D]T}d}y"t jjd |d |j }Wntk rnX|r||_qqWxV|D]N}d}ytjjd |j }Wntk rmnX|r2||_q2q2Wtd td t|S(NRRs Segunda-feiras Terça-feiras Quarta-feiras Quinta-feiras Sexta-feirasSábadoR5R%tdatasresumodiario.htmlR(RRRRRR6R7thoras_trabalhadas_diaR:RAR<R=Rt ComentarioRt comentariot Observacaot observacaoRR!R( R"R$RR%tdatas_horastrabalhadasR?tdhtRDRF((s./ponto/views.pyt resumodiarios<       "   cCs|jj}|rVd|jkr_|jdr_|jd}tjjd|}q_n |j}g}|jst|}n|jt dt dt |S(NRRsresumosemanal.htmlR( RRRRRR6R7thoras_trabalhadas_semanaR:RR!R(R"R$RR%tsemanas_horastrabalhadas((s./ponto/views.pyt resumosemanals     cCs!trtdStdSdS(Ns)Os dados foram sincronizados com sucesso.s#Não há funcionários cadastrados.(t sincronizarR(R"((s./ponto/views.pytforcar_sincronizacaos  c Cs|jj}|s:d}d}tdtdt|Sd|jkr|jdr|jd}d|jkr|jdr|jd}nd|jkr|jdr|jd}ntd|||fd tS|sAtd d*d }|j t t j j jd d}|jtdtdt|Sg} yt j jd |}Wntk rsnXt|}t|}dddddddg} d+} t|||} | |d } |jddd#|_x| D]} t| _qW| rt| d#_nd}t}x| D]{} tj| jd$}| |j| _g}|jd%krt| _|rtj| d&jd$}|}x0||kr|j||td'd 7}qWt}n1x.td(D] }|j|td'|qWt ||| _!q)| jr)tj| jd$}x6|jd%kru|j||td'd 8}q@Wt ||| _!td)tdt|Sq)WdS(,NsAAcesso negado! Apenas o administrador pode acessar esta função.R's erro.htmlRR%tmestanos/relatorio_individual/%s/%s/%s/R,iiiRRs1relatorios/tela_geracao_relatorio_individual.htmltSegtTertQuatQuitSexsSábtDomtJaneirot FevereirosMarçotAbriltMaiotJunhotJulhotAgostotSetembrotOutubrotNovembrotDezembrois%d/%m/%Yiitdaysis$relatorios/relatorio_individual.htmli( sJaneiros FevereirosMarçosAbrilsMaiosJunhosJulhosAgostosSetembrosOutubrosNovembrosDezembro("RRRR!RR.RR0trangeR:RRRRRRR6Rtinttgerar_relatorio_mensalt matriculatultimo_dia_mesRRR tstrptimeRAR<R=tsabadotappendt timedeltathoras_trabalhadas_datasthoras_ate_este_sabado(R"R%RORPR$t mensagem_errotdestinotanosR#trelatorios_diariostdias_semana_abreviadostmesest mes_textotrelt ultima_datatprimeira_semanat data_objetotdatastprimeiro_dia_mestdia_tempti((s./ponto/views.pytrelatorio_individualsv   !            c Cs|jj}|s:d}d}tdtdt|Sd|jkr|jdrd|jkr|jdr|jd}|jd}td||fdtS| r| rtd dd }|j td tdt|St |}t |}d}||d }t t j j} t j jdd} | j| xN| D]F} t| t |t || _x| jD]} | jGHqWqVWtdtdt|SdS(NsAAcesso negado! Apenas o administrador pode acessar esta função.R's erro.htmlRRORPs/relatorio_geral/%s/%s/R,iiis,relatorios/tela_geracao_relatorio_geral.htmlRWRXsMarçoRYRZR[R\R]R^R_R`RaRRsrelatorios/relatorio_geral.htmli( sJaneiros FevereirosMarçosAbrilsMaiosJunhosJulhosAgostosSetembrosOutubrosNovembrosDezembro(RRRR!RR.RR0RcR:RdRRRRR6tremovet$horas_trabalhadas_semana_durante_mesRKtsemana_formatada( R"RORPR$RnRoRpRsRtt funcionariosRR%tsht((s./ponto/views.pytrelatorio_geralGs2 8       !c Cstdt|dt|dt|}|jd}|j}d|jkrd|jkrd|jkr|jdr|jdr|jdr|j}|jd}tj|d}|jd}|jd}t} || _|j| _ || _ d|j kr|j d} | j j d d } tjjtjd |jd |jd | f} tjjtjj| stjtjj| nt| d} x!| jD]}| j|qW| jtjjtjd |jd |jd | f| _ny9tj|d}|| _| jt ddt!SWqt"k rd}d|} t#dt$dt%|SXqnt#dt$dt%|S(Ntdaytmonthtyears%d/%m/%Yt data_textoRDt tempo_gastot arquivo_anexot.itarquivos_anexoss%s.%ss%d-%m-%Yswb+s%H:%M:%Ss/listar_comentarios/R,s>Digite o tempo gasto no formato . Exemplo: 03:00:00.s/adicionar_comentario/%s/s erro.htmlRs%comentarios/adicionar_comentario.html(&R RdtstrftimeRR.R RhRCR%RAttextotFILEStnametsplittostpathtjoinRt MEDIA_ROOTRtexiststdirnametmakedirstopentchunkstwritetcloset MEDIA_URLRttimeRtsaveRR0t ValueErrorRR!R(R"tdiaRORPRARR%ttexto_comentarioRRDRtextensaot nome_arquivoRotchunkt teste_formatoRn((s./ponto/views.pytadicionar_comentariosF- -'        4 :    #c Cstdt|dt|dt|}|jd}|jj}|svd}d}tdtdt|Sytj j d |d t } | j sid |j krJd |j krJ|j d rJ|j d rJ|j d }tj|d}|j d } |j| _| | _d |jkr0|jd } | jjdd} tjjtjdt jd|jd| f} tjjtjj| stjtjj| nt| d}x!| jD]}|j |qW|j!tjjtj"dt jd|jd| f| _#n| j$t%ddt&Stdtdt|Sn(d}d}tdtdt|SWn6t'k rd}d}tdtdt|SXd |j krxd |j krx|j d rx|j d rx|j d }tj|d}|j d } |j| _| | _d |jkr^|jd } | jjdd} tjjtjdt jd|jd| f} tjjtjj| stjtjj| nt| d}x!| jD]}|j |qW|j!tjjtj"dt jd|jd| f| _#n| j$t%ddt&Stdtdt|SdS(NRRRs%d/%m/%YsPAcesso negado! Apenas o próprio dono do comentário pode acessar esta função.R's erro.htmlRRAR%RRDRRiRs%s.%ss%d-%m-%Yswb+s/listar_comentarios/R,s"comentarios/editar_comentario.htmls;Acesso negado! Este comentário não pode ser mais editado.s'Não existe comentário para esta data.((R RdRRRRR!RRCRR6R%tavaliado_pela_chefiaR.R RhRARRRRRRRRRRRRRRRRRRRRRR0R(R"RRORPRARR$RnRoRDRRRRR((s./ponto/views.pyteditar_comentariosr-  8    4 :   8    4 : c Cs|jj}|rVd|jkr_|jdr_|jd}tjjd|}q_n |j}tdt|dt|dt|}|jd}y;t jjd|d|} t d t d t |SWn6t k rd } d } t d t d t |SXdS(NRRRRRs%d/%m/%YRAR%s%comentarios/consultar_comentario.htmlRs'Não existe comentário para esta data.s/listar_comentarios/s erro.html(RRRRRR6R RdRRCRR!RR( R"RRORPR$RR%RARRDRnRo((s./ponto/views.pytconsultar_comentarioAs   -  c Cs|jj}|s:d}d}tdtdt|S|j}tdt|dt|dt|}|jd} ytj j d |d |} | j s| j rt | j jd tj} tj| nd |jkr|jd d kr| jqntddtSd}d}tdtdt|SWn6tk rd}d}tdtdt|SXy;tj j d |d |} tdtdt|SWn6tk rd}d}tdtdt|SXdS(NsPAcesso negado! Apenas o próprio dono do comentário pode acessar esta função.R's erro.htmlRRRRs%d/%m/%YRAR%s/mediatremovertsims/listar_comentarios/R,s<Acesso negado! Este comentário não pode ser mais removido.s'Não existe comentário para esta data.s#comentarios/remover_comentario.html(RRRR!RR RdRRCRR6RRtstrtreplaceRRRR~R.tdeleteRR0R( R"RRORPR$RnRoR%RARRDtcaminho_arquivo((s./ponto/views.pytremover_comentario`s@  -      cCsd}|jj}|r\d|jkre|jdre|jd}tjjd|}qen |j}|jstjj d|j d}nt dt dt |S(NRRR%s-datas#comentarios/listar_comentarios.htmlR(RRRRRRR6R7RCR9torder_byRR!R(R"t comentariosR$RR%((s./ponto/views.pytlistar_comentarioss    !cCsUd}d}d|jkrE|jdrE|jd}||jdRIRLRNRR}RRRRRRRR(((s./ponto/views.pytsF      & 5 p K > n  >t